package cn.wolfcode.car.business.service;

import cn.wolfcode.car.business.domain.StockBill;
import cn.wolfcode.car.business.query.StockBillQuery;
import cn.wolfcode.car.common.base.page.TablePageInfo;

import java.util.List;

/**
 * 服务预约接口
 */
public interface IStockBillService {

    /**
     * 分页
     * @param qo
     * @return
     */
    TablePageInfo<StockBill> query(StockBillQuery qo);


    /**
     * 查单个
     * @param id
     * @return
     */
    StockBill get(Long id);


    /**
     * 保存
     * @param stockBill
     */
    void save(StockBill stockBill);



    /**
     * 查询全部
     * @return
     */
    List<StockBill> list();

    void deleteBatch(String ids);

    void update(StockBill customerStockBill);

    /**
     * 出入库单报废
     * 思路：
     * 入库单： 撤销入库的数量(仓库现有物品数量 减 入库单物品数量，若仓库现有数量不足，拒绝作废) → 修改入库单明细状态(作废) → 修改入库单状态(作废)
     * 出库单： 撤销出库的数量(仓库现有物品数量 加 入库单物品数量) → 修改出库单明细状态(作废) → 修改出库单状态(→作废)
     *
     * @param id
     */
    void cancelBill(Long id);

    List<StockBill> checkBill(Long id);
}
